package com.company;
import java.util.logging.*;
import java.lang.String;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

//为sayHello方法加上日志记录的业务
//写一个类去实现IHello接口，并依赖Hello这个类

//静态代理 当有多种业务逻辑方法的时候 不可能为每个业务逻辑方法写一个代理类


public class HelloProxy implements IHello
{
    private IHello hello;
    public HelloProxy(IHello hello)
    {
        this.hello=hello;
    }

    //若这个处理业务逻辑的类中有很多个处理业务逻辑的方法 则要为每一个方法写一个日志处理方法
    public void sayHello(String name)
    {
        Logger.logging(Level.DEBUGE, "sayHello method start.");
        hello.sayHello(name);
        Logger.logging(Level.INFO, "sayHello method end.");
    }

    public void sayGoodBye(String name)
    {
        Logger.logging(Level.DEBUGE, "sayHello method start.");
        hello.sayGoodBye(name);
        Logger.logging(Level.INFO, "sayHello method end.");
    }
}


